In the latter half of the twentieth century, there began a phenomenon known as the information revolution. While the information revolution is a historical development broader in scope than any one event or machine, no single device has come to represent the information revolution more than the digital electronic computer. The development of computer systems has surely been a revolution. Each year, computer systems grow faster, store more data, and provide more applications to their users.
Early computer systems were very expensive and difficult to use, capable of being programmed and manipulated by only a handful of highly-educated specialists. The cost of operating such computers was correspondingly high, and they were therefore used for only the most essential tasks. The dynamic which has driven the information revolution is the sustained reduction in the cost of computing. Thus, information which was too expensive to gather, store and process a few years ago, is now economically feasible to manipulate via computer. The reduced cost of information processing drives increasing productivity in a snowballing effect, because product designs, manufacturing processes, resource scheduling, administrative chores, and many other factors, are made more efficient.
The cost of information processing not only includes the cost of computer hardware and software, but perhaps even more significantly, the cost of human resources devoted to operating and maintaining computer systems. Improvements to the usability of computer hardware and software reduce the cost of human resources associated with information processing, either by reducing the amount of time directly devoted to a particular task by a human operator (user), or by reducing the level of training required of a user in order to achieve proficiency in performing the task. Continued progress of the information revolution requires still further improvements to the usability and manageability of computer systems.
Many enterprises operate large networks of computer systems. These networks are often arranged in a hierarchy, in which individual employees, agents, contractors, volunteers or other users perform useful work on terminals or workstations, which are in turn attached to larger computer systems. The larger systems may further be interconnected in hierarchical, web, ring, or other network configurations.
Large computer system networks have assumed an ever larger role in the operations of many enterprises. Transactions with customers or clients are recorded on computers. Internal financial data is stored on computers. Documents are generated, stored and printed on computers. Manufacturing processes are controlled by computers. Products are developed on computers. The list goes on and on. Over time, these large computer system networks become so integrated with the operations of the enterprise that it becomes virtually impossible for the enterprise to function without the computer network.
Unfortunately, these systems do not just take care of themselves, and like any complex piece of machinery, require supervision and maintenance. Because these networks are both very complex and very essential, most such systems have dedicated personnel responsible for their administration and maintenance. These personnel may perform tasks such as changing network configurations, authorizing users to access network resources (or removing authorizations), backing up and restoring data, loading new or upgraded software, analyzing network performance, tuning the network by re-allocating resources, replacing malfunctioning components, and so forth.
In almost any large enterprise, one will find a conglomeration of computer systems which were acquired at different times, for different purposes, from different vendors, using different architectures, and performing different functions. This is understandable, given that enterprises are constantly expanding and changing. Enterprises are often divided into organizational units which perform different functions, and thus have different computing needs. An enterprise may re-organize its operations to make them more productive, or may expand into new lines of operation, or may simply grow in its existing lines of operation. Many of these changes require new computer system capability. It is understandable that persons responsible for obtaining new computer system capability in such circumstances will want computer systems which are most suited to the intended use of the organizational unit involved. Moreover, many enterprises include divisions or other portions which were acquired through purchase, merger or otherwise from other enterprises, and after acquisition continue to use computer systems which were previously used by the division before its association with the acquiring enterprise.
While the existence of a variety of computer systems in a large enterprise is the result of rational decisions made at the time each of the various systems was acquired, the result of changes over time is often a heterogeneous collection of systems with little in common. Most individual users don't care very much about this complexity, because they become accustomed to using one system, and don't worry about what others are using. However, for people who are charged with supervising and maintaining the enterprise's computer systems, this complexity can be daunting.
Large system complexes are usually managed using system management software. As used herein, system management is the administration and maintenance of one or more computer systems. System management software is software executing on one or more computer systems which is used to administer and maintain the computer system(s) on which it executes, and/or other computer systems which communicate with the system(s) on which the software executes. This software may reside in a dedicated system used only for management of a complex of computer systems, of may reside in a system which concurrently performs other tasks. A system in which system management software for managing other systems resides is referred to herein as a management server, and the systems which it manages are referred to as managed systems. A single management server might manage thousands of managed systems.
For the same reasons that a variety of computer systems exists in many enterprises, a variety of system management software exists. System management software is often acquired for use with a particular subset of the computers within the enterprise, and as the collection of computers changes, the system management software changes accordingly. The variety of different system management software applications means that system administrators and other maintenance personnel must use multiple applications, and often multiple separate computer systems, to manage the computers within an enterprise. This circumstance naturally makes administration more difficult.
The conventional “solution” to this problem has been migration of the computers systems within an enterprise to a common system management framework. I.e., a common system management application or suite of applications, which is intended to manage all the computer systems within the enterprise, is chosen for the use of the administrators based on any desired characteristics. The existing computer systems (i.e., the managed systems) are then migrated to work with the new common system management application (which may be on a new management server). For those systems which do not already support the new common system management application, it is generally necessary to install some additional software.
Unfortunately, this solution is rather expensive, as it can involve modifying the software on a large number of computer systems. For some of the managed systems, particularly older systems, it may be impossible to provide all the functional capabilities desired. Finally, even when migrated, the solution is often only temporary, because mergers, re-organizations, and other changes to the underlying computer systems within an enterprise may re-introduce the problem.
A need exists for improved techniques for managing to complexity of computer systems within an enterprise, particularly techniques which are more easily adapted to rapid changes in the collection of computer systems within an enterprise.